#pragma once
#include "ShaderProgram.h"
#include "Texture.h"

namespace Fysics
{
	class Material
	{
	private:
		ShaderProgram* m_ShaderProgram;
		std::map<std::string, Texture*> m_Textures;

	public:
		Material();
		virtual ~Material();

		Material& SetShaderProgram(ShaderProgram* shaderProgram);
		Material& AddTexture(const std::string& textureName, Texture* texture);
		ShaderProgram* GetShaderProgram() const { return m_ShaderProgram; }
		size_t GetTextureCount() const { return m_Textures.size(); }

		void BindTexturesToShader() const;
	};
}